#ifndef ITERATION_STATE_H
#define ITERATION_STATE_H


#include "PArray.h"

class DeformationState;
class FiniteElementModel;

class IterationState
{
public:

	int iter_count_;

	IterationState ();


	virtual LinkArray< Array<Real>  > VectorVariables ();
	virtual void IterationStep (DeformationState*);
	virtual void UpdateResidual (DeformationState const*);
	virtual void PrintNodes () const;
	virtual void Print () const;
	virtual bool GoodSolution (DeformationState const*) const;

	virtual void Reinit (DeformationState const*);
	virtual int RelaxationCount (FiniteElementModel*) const;
	virtual ~IterationState ();
};

#endif /* ITERATION_STATE_H */
